package com.df.excel_export;

import com.df.excel_export.project_config.ProjectConfigManager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.stream.Collectors;

//TODO 缓存表的结构，缓存表数据
//TODO 配置按项目分组？
//TODO 反序列化时内存优化：
//TODO 方案1：将相同值的单元格使用同一份内存
//TODO 方案2：超时卸载，超过一定时间未使用的配置从内存中去掉（数据行卸载）
//TODO 集群的时候，多个服务器实例共用一份内存数据(Redis)，但如何保证数据一致性？
//TODO 集成 web excel？
//表头，数据
//项目，配置分组，配置环境
@SpringBootApplication
public class MainWeb {
    public static void main(String[] args) {
        //启动前的一些初始化操作
        //配置存sqlite3数据库里了
        ProjectConfigManager.getIns().loadFromDisk();
        //查找静态文件位置，将参数放入args
        String property = System.getProperty("user.dir");
        String staticFilePath = property + "/views";
        String value = "--spring.web.resources.static-locations=file:"+staticFilePath;
        List<String> collect = Arrays.stream(args).collect(Collectors.toList());
        collect.add(value);
        //启动springboot
        SpringApplication.run(MainWeb.class, collect.toArray(new String[]{}));
//        Application.launch(MainWebviewWindow.class,args);
        try {
            new CountDownLatch(1).await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
